/*
 * BuscarPJ.java
 *
 * Created on 03/02/2010, 12:58:34
 * Copyright Las
 */
package Soligee;

import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeAlterarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeRemoverImplements;
import Soligee.decorador.PaginacaoListaDezEmDez;
import Soligee.decorador.ValidaCamposObrigatorios;
import Soligee.model.vo.cadastros.CidadeVO;
import Soligee.model.vo.cadastros.EnderecoVO;
import Soligee.model.vo.cadastros.PessoaJuridicaVO;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.DefaultTableDataModel;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.component.jsfcl.data.SelectInputDateBean;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.component.paneltabset.PanelTabSet;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.component.selectinputtext.SelectInputText;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import javax.faces.FacesException;
import Soligee.view.RequestBean1;
import Soligee.view.SessionBean1;
import Soligee.view.ApplicationBean1;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;


/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 */
public class BuscarPJ extends AbstractPageBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    private int __placeholder;
    private static PessoaJuridicaVO pessoaJuridica;
    private List<PessoaJuridicaVO> listaDePessoaJuridica = new ArrayList();  //lista para preencher a tabela
    private DefaultSelectionItems item; //item do autocomplete
    private boolean controle;
    private int controlaSaida = 0;

    public static PaginacaoListaDezEmDez getPaginacaoBusca() {
        return paginacaoBusca;
    }

    public static void setPaginacaoBusca(PaginacaoListaDezEmDez paginacaoBusca) {
        BuscarPJ.paginacaoBusca = paginacaoBusca;
    }
    private static PaginacaoListaDezEmDez paginacaoBusca = null;

    public static EnderecoVO getEndereco() {
        return endereco;
    }

    public static void setEndereco(EnderecoVO endereco) {
        BuscarPJ.endereco = endereco;
    }
    private static EnderecoVO endereco;

    public DefaultSelectionItems getItem() {
        return item;
    }

    public void setItem(DefaultSelectionItems item) {
        this.item = item;
    }

    public List<PessoaJuridicaVO> getListaDePessoaJuridica() {
        return listaDePessoaJuridica;
    }

    public void setListaDePessoaJuridica(List<PessoaJuridicaVO> listaDePessoaJuridica) {
        this.listaDePessoaJuridica = listaDePessoaJuridica;
    }

    public static PessoaJuridicaVO getPessoaJuridica() {
        return pessoaJuridica;
    }

    public static void setPessoaJuridica(PessoaJuridicaVO pessoaJuridica) {
        BuscarPJ.pessoaJuridica = pessoaJuridica;
    }
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    private HtmlCommandButton btnBuscar = new HtmlCommandButton();

    public HtmlCommandButton getBtnBuscar() {
        return btnBuscar;
    }

    public void setBtnBuscar(HtmlCommandButton hcb) {
        this.btnBuscar = hcb;
    }
    private HtmlCommandButton btnAlterar1 = new HtmlCommandButton();

    public HtmlCommandButton getBtnAlterar1() {
        return btnAlterar1;
    }

    public void setBtnAlterar1(HtmlCommandButton hcb) {
        this.btnAlterar1 = hcb;
    }
    private HtmlCommandButton btn_excluir = new HtmlCommandButton();

    public HtmlCommandButton getBtn_excluir() {
        return btn_excluir;
    }

    public void setBtn_excluir(HtmlCommandButton hcb) {
        this.btn_excluir = hcb;
    }
    private HtmlCommandButton btn_confirmaAlteracao = new HtmlCommandButton();

    public HtmlCommandButton getBtn_confirmaAlteracao() {
        return btn_confirmaAlteracao;
    }

    public void setBtn_confirmaAlteracao(HtmlCommandButton hcb) {
        this.btn_confirmaAlteracao = hcb;
    }
    private HtmlCommandButton btn_voltar = new HtmlCommandButton();

    public HtmlCommandButton getBtn_voltar() {
        return btn_voltar;
    }

    public void setBtn_voltar(HtmlCommandButton hcb) {
        this.btn_voltar = hcb;
    }
    private HtmlInputText campoCodCliente = new HtmlInputText();

    public HtmlInputText getCampoCodCliente() {
        return campoCodCliente;
    }

    public void setCampoCodCliente(HtmlInputText hit) {
        this.campoCodCliente = hit;
    }
    private HtmlInputText campoNomeCompleto = new HtmlInputText();

    public HtmlInputText getCampoNomeCompleto() {
        return campoNomeCompleto;
    }

    public void setCampoNomeCompleto(HtmlInputText hit) {
        this.campoNomeCompleto = hit;
    }
    private HtmlInputText campoPaginaWeb = new HtmlInputText();

    public HtmlInputText getCampoPaginaWeb() {
        return campoPaginaWeb;
    }

    public void setCampoPaginaWeb(HtmlInputText hit) {
        this.campoPaginaWeb = hit;
    }
    private HtmlInputText campoRazaoSocial = new HtmlInputText();

    public HtmlInputText getCampoRazaoSocial() {
        return campoRazaoSocial;
    }

    public void setCampoRazaoSocial(HtmlInputText hit) {
        this.campoRazaoSocial = hit;
    }
    private HtmlInputText campoIncricaoEstadual = new HtmlInputText();

    public HtmlInputText getCampoIncricaoEstadual() {
        return campoIncricaoEstadual;
    }

    public void setCampoIncricaoEstadual(HtmlInputText hit) {
        this.campoIncricaoEstadual = hit;
    }
    private HtmlInputText campoFax = new HtmlInputText();

    public HtmlInputText getCampoFax() {
        return campoFax;
    }

    public void setCampoFax(HtmlInputText hit) {
        this.campoFax = hit;
    }
    private HtmlInputText campoEmail = new HtmlInputText();

    public HtmlInputText getCampoEmail() {
        return campoEmail;
    }

    public void setCampoEmail(HtmlInputText hit) {
        this.campoEmail = hit;
    }
    private HtmlInputText campoCnpj = new HtmlInputText();

    public HtmlInputText getCampoCnpj() {
        return campoCnpj;
    }

    public void setCampoCnpj(HtmlInputText hit) {
        this.campoCnpj = hit;
    }
    private HtmlInputText campoTelefoneComercial = new HtmlInputText();

    public HtmlInputText getCampoTelefoneComercial() {
        return campoTelefoneComercial;
    }

    public void setCampoTelefoneComercial(HtmlInputText hit) {
        this.campoTelefoneComercial = hit;
    }
    private HtmlInputText campoRua = new HtmlInputText();

    public HtmlInputText getCampoRua() {
        return campoRua;
    }

    public void setCampoRua(HtmlInputText hit) {
        this.campoRua = hit;
    }
    private HtmlInputText campoNumero = new HtmlInputText();

    public HtmlInputText getCampoNumero() {
        return campoNumero;
    }

    public void setCampoNumero(HtmlInputText hit) {
        this.campoNumero = hit;
    }
    private HtmlInputText campoComplemento = new HtmlInputText();

    public HtmlInputText getCampoComplemento() {
        return campoComplemento;
    }

    public void setCampoComplemento(HtmlInputText hit) {
        this.campoComplemento = hit;
    }
    private HtmlInputText campoBairro = new HtmlInputText();

    public HtmlInputText getCampoBairro() {
        return campoBairro;
    }

    public void setCampoBairro(HtmlInputText hit) {
        this.campoBairro = hit;
    }
    private HtmlInputText campoCep = new HtmlInputText();

    public HtmlInputText getCampoCep() {
        return campoCep;
    }

    public void setCampoCep(HtmlInputText hit) {
        this.campoCep = hit;
    }
    private DefaultTableDataModel dataTable1Model = new DefaultTableDataModel();

    public DefaultTableDataModel getDataTable1Model() {
        return dataTable1Model;
    }

    public void setDataTable1Model(DefaultTableDataModel dtdm) {
        this.dataTable1Model = dtdm;
    }
    private HtmlDataTable tabelaResultadoBusca = new HtmlDataTable();

    public HtmlDataTable getTabelaResultadoBusca() {
        return tabelaResultadoBusca;
    }

    public void setTabelaResultadoBusca(HtmlDataTable hdt) {
        this.tabelaResultadoBusca = hdt;
    }
    private SelectInputText campoABuscar = new SelectInputText();

    public SelectInputText getCampoABuscar() {
        return campoABuscar;
    }

    public void setCampoABuscar(SelectInputText sit) {
        this.campoABuscar = sit;
    }
    private SelectInputDateBean selectInputDate1Bean = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDate1Bean() {
        return selectInputDate1Bean;
    }

    public void setSelectInputDate1Bean(SelectInputDateBean sidb) {
        this.selectInputDate1Bean = sidb;
    }
    private SelectInputDate dataCadastro = new SelectInputDate();

    public SelectInputDate getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(SelectInputDate sid) {
        this.dataCadastro = sid;
    }
    private DefaultSelectedData botaoSelecionadoTipoBusca = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoTipoBusca() {
        return botaoSelecionadoTipoBusca;
    }

    public void setBotaoSelecionadoTipoBusca(DefaultSelectedData dsd) {
        this.botaoSelecionadoTipoBusca = dsd;
    }
    private DefaultSelectionItems botaoTipoBusca = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoTipoBusca() {
        return botaoTipoBusca;
    }

    public void setBotaoTipoBusca(DefaultSelectionItems dsi) {
        this.botaoTipoBusca = dsi;
    }
    private HtmlSelectOneMenu tipoBusca = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getTipoBusca() {
        return tipoBusca;
    }

    public void setTipoBusca(HtmlSelectOneMenu hsom) {
        this.tipoBusca = hsom;
    }
    private DefaultSelectedData botaoSelecionadoOpcaoUf = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoOpcaoUf() {
        return botaoSelecionadoOpcaoUf;
    }

    public void setBotaoSelecionadoOpcaoUf(DefaultSelectedData dsd) {
        this.botaoSelecionadoOpcaoUf = dsd;
    }
    private DefaultSelectionItems botaoOpcaoUf = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoOpcaoUf() {
        return botaoOpcaoUf;
    }

    public void setBotaoOpcaoUf(DefaultSelectionItems dsi) {
        this.botaoOpcaoUf = dsi;
    }
    private HtmlSelectOneMenu opcaoUf = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getOpcaoUf() {
        return opcaoUf;
    }

    public void setOpcaoUf(HtmlSelectOneMenu hsom) {
        this.opcaoUf = hsom;
    }
    private PanelTabSet painelBuscarPessoaJuridica = new PanelTabSet();

    public PanelTabSet getPainelBuscarPessoaJuridica() {
        return painelBuscarPessoaJuridica;
    }

    public void setPainelBuscarPessoaJuridica(PanelTabSet pts) {
        this.painelBuscarPessoaJuridica = pts;
    }
    private PopupBean panelPopup1Bean = new PopupBean();

    public PopupBean getPanelPopup1Bean() {
        return panelPopup1Bean;
    }

    public void setPanelPopup1Bean(PopupBean pb) {
        this.panelPopup1Bean = pb;
    }
    private PanelPopup panelPopUpAviso = new PanelPopup();

    public PanelPopup getPanelPopUpAviso() {
        return panelPopUpAviso;
    }

    public void setPanelPopUpAviso(PanelPopup pp) {
        this.panelPopUpAviso = pp;
    }
    private HtmlCommandButton btnPopUp1 = new HtmlCommandButton();

    public HtmlCommandButton getBtnPopUp1() {
        return btnPopUp1;
    }

    public void setBtnPopUp1(HtmlCommandButton hcb) {
        this.btnPopUp1 = hcb;
    }
    private HtmlCommandButton btnPopUp2 = new HtmlCommandButton();

    public HtmlCommandButton getBtnPopUp2() {
        return btnPopUp2;
    }

    public void setBtnPopUp2(HtmlCommandButton hcb) {
        this.btnPopUp2 = hcb;
    }
    private HtmlOutputText textoPopUp1 = new HtmlOutputText();

    public HtmlOutputText getTextoPopUp1() {
        return textoPopUp1;
    }

    public void setTextoPopUp1(HtmlOutputText hot) {
        this.textoPopUp1 = hot;
    }
    private DefaultSelectedData botaoSelecionadoCampoCidade = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoCampoCidade() {
        return botaoSelecionadoCampoCidade;
    }

    public void setBotaoSelecionadoCampoCidade(DefaultSelectedData dsd) {
        this.botaoSelecionadoCampoCidade = dsd;
    }
    private DefaultSelectionItems botaoCampoCidade = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoCampoCidade() {
        return botaoCampoCidade;
    }

    public void setBotaoCampoCidade(DefaultSelectionItems dsi) {
        this.botaoCampoCidade = dsi;
    }
    private HtmlSelectOneMenu campoCidade = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getCampoCidade() {
        return campoCidade;
    }

    public void setCampoCidade(HtmlSelectOneMenu hsom) {
        this.campoCidade = hsom;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterFirstButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterFirstButton() {
        return tabelaResultadoBuscaFooterFirstButton;
    }

    public void setTabelaResultadoBuscaFooterFirstButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterFirstButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterPreviousButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterPreviousButton() {
        return tabelaResultadoBuscaFooterPreviousButton;
    }

    public void setTabelaResultadoBuscaFooterPreviousButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterPreviousButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterNextButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterNextButton() {
        return tabelaResultadoBuscaFooterNextButton;
    }

    public void setTabelaResultadoBuscaFooterNextButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterNextButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterLastButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterLastButton() {
        return tabelaResultadoBuscaFooterLastButton;
    }

    public void setTabelaResultadoBuscaFooterLastButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterLastButton = hcb;
    }

    // </editor-fold>

    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public BuscarPJ() {
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        FacesContext.getCurrentInstance().getExternalContext().getRequestMap().clear();
        this.inicializaCampos();


        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
            
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("BuscarPJ Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
        }
        
        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected RequestBean1 getview$RequestBean1() {
        return (RequestBean1) getBean("view$RequestBean1");
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected SessionBean1 getview$SessionBean1() {
        return (SessionBean1) getBean("view$SessionBean1");
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected ApplicationBean1 getview$ApplicationBean1() {
        return (ApplicationBean1) getBean("view$ApplicationBean1");
    }
    public void inicializaCampos(){
            //Define TamanhoMaximo dos Campos
            campoRazaoSocial.setMaxlength(50);
            campoNomeCompleto.setMaxlength(100);
            campoIncricaoEstadual.setMaxlength(20);
            campoEmail.setMaxlength(50);
            campoPaginaWeb.setMaxlength(50);
            campoRua.setMaxlength(50);
            campoNumero.setMaxlength(10);

            //TipoBusca
            botaoTipoBusca.clear();
            botaoTipoBusca.add(new SelectItem(1, "Nome"));
            botaoTipoBusca.add(new SelectItem(2, "CNPJ"));
            botaoTipoBusca.add(new SelectItem(3, "Todos"));

            //Inicializa Botoes/Busca/Exclusão
            btn_excluir.setRendered(false);
            btnAlterar1.setRendered(false);
            btn_confirmaAlteracao.setRendered(false);

            //Inicializa Estados
            botaoOpcaoUf.clear();
            botaoOpcaoUf.add(new SelectItem(1, "AC"));
            botaoOpcaoUf.add(new SelectItem(2, "AL"));
            botaoOpcaoUf.add(new SelectItem(3, "AP"));
            botaoOpcaoUf.add(new SelectItem(4, "AM"));
            botaoOpcaoUf.add(new SelectItem(5, "BA"));
            botaoOpcaoUf.add(new SelectItem(6, "CE"));
            botaoOpcaoUf.add(new SelectItem(7, "DF"));
            botaoOpcaoUf.add(new SelectItem(8, "ES"));
            botaoOpcaoUf.add(new SelectItem(9, "GO"));
            botaoOpcaoUf.add(new SelectItem(10, "MA"));
            botaoOpcaoUf.add(new SelectItem(11, "MT"));
            botaoOpcaoUf.add(new SelectItem(12, "MS"));
            botaoOpcaoUf.add(new SelectItem(13, "MG"));
            botaoOpcaoUf.add(new SelectItem(14, "PA"));
            botaoOpcaoUf.add(new SelectItem(15, "PB"));
            botaoOpcaoUf.add(new SelectItem(16, "PR"));
            botaoOpcaoUf.add(new SelectItem(17, "PE"));
            botaoOpcaoUf.add(new SelectItem(18, "PI"));
            botaoOpcaoUf.add(new SelectItem(19, "RJ"));
            botaoOpcaoUf.add(new SelectItem(20, "RN"));
            botaoOpcaoUf.add(new SelectItem(21, "RS"));
            botaoOpcaoUf.add(new SelectItem(22, "RO"));
            botaoOpcaoUf.add(new SelectItem(23, "RR"));
            botaoOpcaoUf.add(new SelectItem(24, "SC"));
            botaoOpcaoUf.add(new SelectItem(25, "SP"));
            botaoOpcaoUf.add(new SelectItem(26, "SE"));
            botaoOpcaoUf.add(new SelectItem(27, "TO"));

            //Inicializa TabelaVazia
            dataTable1Model.setWrappedData(null);

            //Setar Aba00
            painelBuscarPessoaJuridica.setSelectedIndex(0);

            //SetarCampos
            this.setaCampos(true);

            //PopUpAviso
            panelPopUpAviso.setRendered(false);

            //ComboCidade
            this.InicializaCampoCidade(1);

            //PAginaçãoTabela
            this.controlaPaginacao(0);
            
    }

    //Action BTNBuscar
    public String btnBuscar_action() {
        try{
            SessionFacadeBuscarImplements facade_busca = new SessionFacadeBuscarImplements();
            switch (Integer.parseInt(tipoBusca.getValue().toString())) {
         case 1://busca por nome
            this.setListaDePessoaJuridica(facade_busca.buscaPorNome("nome", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         case 2://busca por cnpj
            this.setListaDePessoaJuridica(facade_busca.buscaPorNome("cnpj", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         case 3://busca todos
            this.setListaDePessoaJuridica(facade_busca.buscarTodos("nome", PessoaJuridicaVO.class));
            dataTable1Model.setWrappedData(this.getListaDePessoaJuridica());
            break;
         default:
            System.out.println("Valor inválido do combobox para o tipo da consulta.");
            break;
      }//fim switch
         BuscarPJ.setPaginacaoBusca(new PaginacaoListaDezEmDez(this.getListaDePessoaJuridica()));
        //defini o estado dos botoes da tabela de busca
        this.controlaPaginacao(this.getListaDePessoaJuridica().size());
        }//fimTry
       catch (Exception e) {
           e.printStackTrace();
            controlaPopup(true,"Campo a Buscar vazio"+ e.getMessage() + e.getStackTrace(),false,true,"","OK");
        }

         
     
      return null;
   }

    //Action LinkDentroTabela
    public String linkAction1_action() {
      setaCampos(true);
      this.pessoaJuridica = (PessoaJuridicaVO) tabelaResultadoBusca.getRowData(); //pega o objeto da linha selecionada
      endereco = (EnderecoVO) pessoaJuridica.getEndereco().iterator().next();
      campoBairro.setValue(endereco.getBairro());
      campoCep.setValue(endereco.getCep());
      this.endereco = (EnderecoVO)pessoaJuridica.getEndereco().iterator().next();
      this.InicializaCampoCidade(endereco.getCidades().getCodEstado().getCodEstado());
      opcaoUf.setValue(endereco.getCidades().getCodEstado().getCodEstado());
      campoCidade.setValue(endereco.getCidades().getCodCidade());
      campoCnpj.setValue(pessoaJuridica.getCnpj());
      campoCodCliente.setValue(pessoaJuridica.getCodPessoa());
      campoComplemento.setValue(endereco.getComplemento());
      campoEmail.setValue(pessoaJuridica.getEmail());
      campoFax.setValue(pessoaJuridica.getTelefoneDois());
      campoIncricaoEstadual.setValue(pessoaJuridica.getInscEstadual());
      campoNomeCompleto.setValue(pessoaJuridica.getNome());
      campoNumero.setValue(endereco.getNumero());
      campoPaginaWeb.setValue(pessoaJuridica.getPaginaWeb());
      campoRua.setValue(endereco.getRua());
      campoRazaoSocial.setValue(pessoaJuridica.getRazaoSocial());
      campoTelefoneComercial.setValue(pessoaJuridica.getTelefoneUm());
      btnAlterar1.setRendered(true);
      btn_excluir.setRendered(true);
      btn_confirmaAlteracao.setRendered(false);
      setaCampos(true);

      ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();

        valida.verificaCampoVazio(campoNomeCompleto);
        valida.verificaCampoVazio(campoCnpj);
        valida.verificaCampoVazio(campoRazaoSocial);
        valida.verificaCampoVazio(campoIncricaoEstadual);
        valida.verificaCampoVazio(campoRua);
        valida.verificaCampoVazio(campoNumero);
        valida.verificaCampoVazio(campoBairro);
        valida.verificaCampoVazio(campoCep);

      return null;
    }

    //Método SetarCampos
    public void setaCampos(boolean x) {
      campoCodCliente.setDisabled(x);
      dataCadastro.setDisabled(x);
      opcaoUf.setDisabled(x);
      campoNomeCompleto.setDisabled(x);
      campoTelefoneComercial.setDisabled(x);
      campoFax.setDisabled(x);
      campoEmail.setDisabled(x);
      campoPaginaWeb.setDisabled(x);
      campoRazaoSocial.setDisabled(x);
      campoCnpj.setDisabled(x);
      campoIncricaoEstadual.setDisabled(x);
      campoRua.setDisabled(x);
      campoBairro.setDisabled(x);
      campoCep.setDisabled(x);
      campoNumero.setDisabled(x);
      campoComplemento.setDisabled(x);
      campoCidade.setDisabled(x);
   }

    //ProcessValueChange TiopoBusca
    public void tipoBusca_processValueChange(ValueChangeEvent vce) {
        if(Integer.parseInt(tipoBusca.getValue().toString())==1){
            campoABuscar.setValue("");
            campoABuscar.setReadonly(false);
        }
        else
             if(Integer.parseInt(tipoBusca.getValue().toString())==2){
                    campoABuscar.setValue("");
                    campoABuscar.setReadonly(false);
        }
             else
               if(Integer.parseInt(tipoBusca.getValue().toString())==3){
                    campoABuscar.setValue("");
                    campoABuscar.setReadonly(true);
        }
    }

    //Action BotaoAlterar
    public String btnAlterar1_action() {
        this.setaCampos(false);
        btnAlterar1.setRendered(false);
        btn_excluir.setRendered(false);
        btn_confirmaAlteracao.setRendered(true);
        return null;
    }

    //ProcessValueChange CamoABuscar
    public void campoABuscar_processValueChange(ValueChangeEvent vce) {
     if (Integer.parseInt(tipoBusca.getValue().toString()) == 1) {
         setItem(new SessionFacadeBuscarImplements().consultaSelectInputText(2, "nome", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));

      } else if (Integer.parseInt(tipoBusca.getValue().toString()) == 2) {
        setItem(item = new SessionFacadeBuscarImplements().consultaSelectInputText(2, "cnpj", campoABuscar.getValue().toString(), PessoaJuridicaVO.class));

      }
   }

    //Action BTNConfirmaAlteracao
    public String btn_confirmaAlteracao_action() {
        ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();

        valida.verificaCampoVazio(campoNomeCompleto);
        valida.verificaCampoVazio(campoCnpj);
        valida.verificaCampoVazio(campoRazaoSocial);
        valida.verificaCampoVazio(campoIncricaoEstadual);
        valida.verificaCampoVazio(campoRua);
        valida.verificaCampoVazio(campoNumero);
        valida.verificaCampoVazio(campoBairro);
        valida.verificaCampoVazio(campoCep);

        if(valida.verificaCampoVazio(campoNomeCompleto)||valida.verificaCampoVazio(campoCnpj)||valida.verificaCampoVazio(campoRazaoSocial)||valida.verificaCampoVazio(campoIncricaoEstadual)){
            controlaPopup(true,"Campos Obrigatório!",false,true,"","Ok");
            painelBuscarPessoaJuridica.setSelectedIndex(0);
        }

        else if(valida.verificaCampoVazio(campoRua)||valida.verificaCampoVazio(campoNumero)||valida.verificaCampoVazio(campoBairro)||valida.verificaCampoVazio(campoCep)){
            controlaPopup(true,"Campos Obrigatório!",false,true,"","Ok");
            painelBuscarPessoaJuridica.setSelectedIndex(1);
            }
            else{
                controlaPopup(true, "Deseja Alterar a Pessoa Juridica Selecionada ?", true, true, "Sim", "Não");
                this.controle = true;
        }
      return null;

    }

    //Action BTNExcluir
    public String btn_excluir_action() {
       controlaPopup(true, "Deseja Excluir a Pessoa Juridica Selecionada ?", true, true, "Sim", "Não");
       this.controle = false;
       return null;
    }

    //Action BTN1 Pop-UP
     public String btnPopUp1_action() {
         if(controlaSaida==1){
          return "voltar";
      }
      if (this.controle == true) {
         SessionFacadeAlterarImplements facadeAlterar = new SessionFacadeAlterarImplements();
         Date datacadastro = (Date) (Object) dataCadastro.getValue();

         try {
            if (facadeAlterar.alterarPessoaJuridica(pessoaJuridica.getCodPessoa(), campoNomeCompleto.getValue().toString(), campoTelefoneComercial.getValue().toString(),
                    campoFax.getValue().toString(), campoEmail.getValue().toString(), campoPaginaWeb.getValue().toString(), "",
                    datacadastro, campoRazaoSocial.getValue().toString(), campoCnpj.getValue().toString(), campoIncricaoEstadual.getValue().toString(),
                    //parametros Endereco
                    endereco.getCodEndereco(), 2, campoRua.getValue().toString(), campoBairro.getValue().toString(), campoCep.getValue().toString(), campoNumero.getValue().toString(), campoComplemento.getValue().toString(),
                    Integer.parseInt(campoCidade.getValue().toString()))) {

               controlaPopup(true, "Pessoa Juridica alterada com sucesso!", false, true, "", "OK");
               btnBuscar_action();

            }
         } catch (IOException ex) {
            controlaPopup(true, "Erro:" + ex.getMessage() + "caused by: " + ex.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + ex.getMessage() + "caused by: " + ex.getStackTrace());
         } catch (Exception e) {

            System.out.println("entrou aki");
            e.printStackTrace();
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         limpaCampos();
         this.setaCampos(true);
         btnAlterar1.setRendered(false);
         btn_confirmaAlteracao.setRendered(false);
         btn_excluir.setRendered(false);

         return "sair";
      } else {
         SessionFacadeRemoverImplements remover = new SessionFacadeRemoverImplements();
         try {
            if (remover.removerPessoaJuridica(pessoaJuridica, endereco)) {
               btn_excluir.setRendered(false);
               btnAlterar1.setRendered(false);
               controlaPopup(true, "Pessoa Juridica excluida com sucesso!", false, true, "", "OK");
               btnBuscar_action();
            }
         } catch (Exception e) {
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         limpaCampos();
         this.setaCampos(true);
         btnAlterar1.setRendered(false);
         btn_confirmaAlteracao.setRendered(false);
         btn_excluir.setRendered(false);
      }
      return "sair";
   }

    //Action BTN2 Pop-UP
    public String btnPopUp2_action() {
        panelPopUpAviso.setRendered(false);
        return null;
    }

    //Método Controla Pop-Up
    public void controlaPopup(boolean renderedPopup, String textoPoup, boolean btn1Rendered, boolean btn2Rendered,
      String textobtn1, String textobtn2) {
      panelPopUpAviso.setRendered(renderedPopup);
      textoPopUp1.setValue(textoPoup);
      btnPopUp1.setValue(textobtn1);
      btnPopUp1.setRendered(btn1Rendered);
      btnPopUp2.setRendered(btn2Rendered);
      btnPopUp2.setValue(textobtn2);
   }

    //LimpaCampos();
     public void limpaCampos() {
      campoCodCliente.resetValue();
      dataCadastro.resetValue();
      opcaoUf.resetValue();
      campoNomeCompleto.resetValue();
      campoTelefoneComercial.resetValue();
      campoFax.resetValue();
      campoEmail.resetValue();
      campoPaginaWeb.resetValue();
      campoRazaoSocial.resetValue();
      campoCnpj.resetValue();
      campoIncricaoEstadual.resetValue();
      campoRua.resetValue();
      campoBairro.resetValue();
      campoCep.resetValue();
      campoNumero.resetValue();
      campoComplemento.resetValue();
      this.setaCampos(true);
      btn_excluir.setRendered(true);
      btnAlterar1.setRendered(true);
      btn_confirmaAlteracao.setRendered(false);
   }

     //Action Voltar Superior
    public String btn_voltar_action() {
        controlaSaida = 1;
        controlaPopup(true,"Deseja Sair ?",true,true,"Sim","Não");
        return null;
    }

     //metodo para preenchimento do combobox fornecedor
   public DefaultSelectionItems InicializaCampoCidade(int codEstado) {
      SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
      DefaultSelectionItems itens = new DefaultSelectionItems();
      itens.clear();
      try {
         //  String campo_desejado,Object oque_buscar,String nomeObjetoAsssociado,String ordenarPor,Class classe
         List<CidadeVO> listaCidades = facadeBusca.buscaTodosComAssociacao("codEstado", codEstado, "codEstado", "codCidade", CidadeVO.class);
         int j = 0;
         while (j < listaCidades.size()) {
            itens.add(new SelectItem(listaCidades.get(j).getCodCidade(), listaCidades.get(j).getNome()));
            j++;
         }
         this.setBotaoCampoCidade(itens);
      } catch (NullPointerException e) {
         System.err.print("Erro em inicializar o combobox:" + e.getMessage());
      }
      return null;
   }

   //ProcessValueChange Estado - Inicializar Cidades
    public void opcaoUf_processValueChange(ValueChangeEvent vce) {
        InicializaCampoCidade(Integer.parseInt(opcaoUf.getValue().toString()));
    }
    //Branco - Campos
   public void campoBranco(){
       ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();
       valida.limpaCores(campoNomeCompleto);
       valida.limpaCores(campoIncricaoEstadual);
       valida.limpaCores(campoRazaoSocial);
       valida.limpaCores(campoRua);
       valida.limpaCores(campoNumero);
       valida.limpaCores(campoBairro);
       valida.limpaCores(campoCep);

   }

    //Link CancelaAba01
    public String tx_opCancelarAba01_action() {
        painelBuscarPessoaJuridica.setSelectedIndex(0);
        this.limpaCampos();
        this.campoBranco();
        return null;
    }

    //Link CancelarAba02
    public String tx_opCancelarAba02_action() {
        painelBuscarPessoaJuridica.setSelectedIndex(0);
        this.limpaCampos();
        this.campoBranco();
        return null;
    }

    //Link ProximaAba
    public String link_proximoPassoAba01_action() {
        painelBuscarPessoaJuridica.setSelectedIndex(1);
        return null;
    }

    //Link AbaAnterior
    public String link_AbaAnterior1_action() {
        painelBuscarPessoaJuridica.setSelectedIndex(0);
        return null;
    }

     public String tabelaResultadoBusca_firstPageAction() {
        {
            dataTable1Model.setWrappedData(BuscarPJ.getPaginacaoBusca().firstPage());
            tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
            tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
            if (BuscarPJ.getPaginacaoBusca().getTotalPaginas() > 1) {
                tabelaResultadoBuscaFooterNextButton.setDisabled(false);
                tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
      return null;
   }
  }

    public String tabelaResultadoBusca_previousPageAction() {
        {
           dataTable1Model.setWrappedData(BuscarPJ.getPaginacaoBusca().previousPage());
      if (BuscarPJ.getPaginacaoBusca().getNumeroDaPagina() == 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
      }
      if (BuscarPJ.getPaginacaoBusca().getTotalPaginas() > 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
      if (BuscarPJ.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }
    }

    public String tabelaResultadoBusca_nextPageAction() {
       dataTable1Model.setWrappedData(BuscarPJ.getPaginacaoBusca().nextPage());
      tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
      if (BuscarPJ.getPaginacaoBusca().getTotalPaginas() == BuscarPJ.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (BuscarPJ.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public String tabelaResultadoBusca_lastPageAction() {
       dataTable1Model.setWrappedData(BuscarPJ.getPaginacaoBusca().lastPage());
      if (BuscarPJ.getPaginacaoBusca().getTotalPaginas() == BuscarPJ.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      if (BuscarPJ.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public void controlaPaginacao(int controlePaginas) {
      if (controlePaginas <= 10) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (controlePaginas > 10) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
      }
   }

    public String panelLayoutLogo_action() {
        return "voltar";
    }

      

}

